#ifndef CURRENTDIALOGTABLE_H
#define CURRENTDIALOGTABLE_H

#include "QuantumSipServerNotifications.h"

/*
 * Data structure for a list's entry
 */
struct CurrentDialogTable_entry {
    /*
     * Index values
     */
     long HashEntry;

     long HashId;

    /*
     * Column values
     */
    char            CallId[255];
    size_t          CallId_len;

    u_long          CallerId;

    u_long          CallerProxyId;

    u_long          CalleeId;

    u_long          CalleeProxyId;

    long            CallType;

    long            CallState;

    /*
     * Illustrate using a simple linked list
     */
    int             valid;

    struct CurrentDialogTable_entry *next;
};

/************************************
 * function declarations
 ************************************/
struct CurrentDialogTable_entry *
CurrentDialogTable_addOrUpdateEntry(struct CurrentDialogTable_entry **theHeadPointer,
                                    CurrentDialogTable_context_str *context);

void CurrentDialogTable_removeEntry(struct CurrentDialogTable_entry **theHeadPointer,
                                    char *callId);

int CurrentDialogTable_size(struct CurrentDialogTable_entry **theHeadPointer);

void CurrentDialogTable_print(struct CurrentDialogTable_entry **theHeadPointer);

void            init_CurrentDialogTable(void);

void            initialize_table_CurrentDialogTable(void);

Netsnmp_Node_Handler CurrentDialogTable_handler;

Netsnmp_First_Data_Point CurrentDialogTable_get_first_data_point;

Netsnmp_Next_Data_Point CurrentDialogTable_get_next_data_point;

/*
 * column number definitions for table CurrentDialogTable
 */
#define COLUMN_CALLID		        1
#define COLUMN_CALLERID		        2
#define COLUMN_CALLERPROXYID		3
#define COLUMN_CALLEEID		        4
#define COLUMN_CALLEEPROXYID		5
#define COLUMN_CALLTYPE		        6
#define COLUMN_CALLSTATE		    7


#endif                          /* CURRENTDIALOGTABLE_H */
